/// 输入验证工具类
class Validators {
  /// 验证快递单号格式
  /// 
  /// 规则：
  /// - 长度在 10-30 位之间
  /// - 只能包含字母和数字
  static String? validateTrackingNumber(String? value) {
    if (value == null || value.trim().isEmpty) {
      return '请输入快递单号';
    }

    final trimmed = value.trim();

    // 基本长度验证（大多数快递单号在10-30位之间）
    if (trimmed.length < 10 || trimmed.length > 30) {
      return '快递单号长度应在10-30位之间';
    }

    // 格式验证（只允许数字和字母）
    if (!RegExp(r'^[A-Za-z0-9]+$').hasMatch(trimmed)) {
      return '快递单号只能包含字母和数字';
    }

    return null;
  }

  /// 验证手机号后四位
  static String? validatePhoneLastFour(String? value) {
    if (value == null || value.trim().isEmpty) {
      return null; // 手机号是可选的
    }

    final trimmed = value.trim();

    // 必须是4位数字
    if (trimmed.length != 4) {
      return '请输入手机号后4位';
    }

    // 必须是纯数字
    if (!RegExp(r'^\d{4}$').hasMatch(trimmed)) {
      return '手机号后4位必须是数字';
    }

    return null;
  }
}

